Rational Apex C/C++

Integrated development environment for complex C and C++ applications

Prerelease information



Rational Apex(R) C/C++ is an integrated environment for designing, developing, and maintaining complex C and C++ applications. Rational Apex C/C++ is available on each of the leading UNIX-based open-systems platforms, offering uniform C/C++ language treatment and product functionality across platforms. Rational Apex C/C++ is a fundamental component of Rational's modern, software-engineering solution, comprising software processes, integrated software-development tools, and professional services. The complete Rational solution gives you control of your software-development efforts and sharpens your competitive edge.

Offers the productivity and power of tight integration

Rational Apex C/C++ is an integrated environment that makes the design, development, and maintenance of complex C and C++ applications more manageable. Rational Apex C/C++: Rational Apex C/C++ tightly integrates these capabilities with one another to form a powerful solution for application development.

Stand-alone compilers, editors, and source-code control systems do not contain deep semantic information about C/C++ language constructs. Because stand-alone tools do not share data structures, manual steps are needed to move data from one tool to another. These limitations introduce errors into the development process and reduce the effectiveness of stand-alone tools.

In comparison, Rational Apex C/C++ is completely integrated, based on a persistent intermediate representation that captures detailed semantic information about your software. Rational Apex uses this information and makes it available to other Rational tools, as well as to third-party and customer-generated tools that extract it using Rational Apex's open interfaces. Tools using the information collected by Rational Apex have the same in-depth semantic knowledge about your program that the Rational Apex compiler had when it compiled your source code.

Provides support throughout the software lifecycle

Rational Apex C/C++ is the centerpiece of an extensive family of Rational tools that provide support for modern software practices throughout the entire software lifecycle. These practices include: From initial design through coding, testing, and debugging to maintenance, Rational Apex C/C++ reduces the risk associated with developing complex software systems and helps you improve the quality of your software. Rational tools available for use with Rational Apex C/C++ include Rational Rose(R)/C++ (graphical object-oriented programming), SoDA(R) (software document automation), and TestMate(TM) (software testing automation).

Enforces your software architecture

Most C/C++ projects, even fairly small ones, consist of many separately compiled units; large projects can include thousands of these units. Good development teams try to keep these units organized in an overall system architecture. A sound, flexible architecture has proven to be the key determinant of success in building and enhancing complex software systems and in achieving enterprisewide software reuse.

It is not easy, however, to express the high-level software architecture of your system using C or C++ alone. In the absence of automation to support your software architecture, violations take place with increasing frequency as a project progresses. This phenomenon is known as architecture degradation. Architecture violations--whether inadvertent or intentional--lead to errors, needless recompilations, unmaintainable code, project delays, and higher risk.

Rational Apex C/C++ provides architectural control through Rational Subsystems(TM), a way of formalizing and enforcing relationships between software components that cannot be expressed in C or C++ alone. Like well-designed object-oriented classes, Rational Subsystems have specifications and implementations. Each subsystem's formal import and export lists determine how it can be used. Rational Apex detects changes that violate the architecture and reports them to the development team to prevent architecture degradation.

Subsystems make your system architecture visible to all developers and maintain its integrity through the software's lifetime. Architectural control simplifies team development and encourages Rational Apex is the only development environment to offer architectural control, made possible because of the tight integration with the underlying C/C++ compiler that is part of Rational Apex C/C++.




With its architectural control, Rational Apex prevents
unauthorized direct access to lower layers.


Simplifies parallel development through integrated configuration management

Most software is built by teams operating in parallel while sharing a common architecture, design, and source-code base. To be effective, software-development teams require reliable and nonintrusive configuration management, version control, and build and release automation, in addition to architectural control. The more complex the application, the more important effective support for parallel development and software process becomes.

Rational Apex is unique in including a configuration-management and version-control (CMVC) system that lets you manage parallel development simply and without high overhead. Multiple developers or teams can work from the same baselined code and merge their work as needed to fit into your engineering process. Rational Apex CMVC supports effective parallel development for local or geographically distributed teams.

Complete change history and project reporting is available. Rational Apex lets you define your process workflow models using views and view transitions. Views give your developers working in parallel full visibility to changes taking place in other views. Changes can be accepted into a given view in a controlled way so that parallel development activities do not interfere with one another. Views can be used in many development processes. For example, you can implement development views that become integration views that become release views as groups of software changes reach different stages of maturity. Process triggers help you enforce important procedures, such as integrating defect management into the change cycle, sending automatic notification by e-mail, and controlling change migration through electronic sign-off.




Rational Apex provides subsystems and views to support your software-engineering process.


Provides an unmatched object-oriented toolset with Rational Rose/C++

Rational Apex C/C++ is available bundled with Rational Rose/C++, Rational's award-winning graphical object-oriented analysis and design tool. When you use Rational Apex in conjunction with Rational Rose/C++, you get the benefits of full round-trip engineering.

Round-trip engineering is a unique advantage of the Rational Rose technology. Rational Rose supports this process with customizable code generation, reverse engineering, model differencing, and design-update features that allow you to extend the implementation of your design, make changes to that implementation, assess the changes architecturally, and have them automatically reflected in your design. When Rational Rose/C++ is bundled with Rational Apex C/C++, you can generate your Rational Apex subsystems and your skeletal C++ source code from your graphical Rational Rose models. You can also reverse engineer from source code--either your modified code, legacy code, or externally developed source code--back to a graphical Rational Rose model of your system as it really is. This reverse-engineered model can then be integrated into an existing model, or it can become the basis for regenerating the next version of the application.

Rational Apex C/C++ bundled with Rational Rose/C++ gives you the most complete object-oriented development environment available for complex C++ projects.




Rational Apex is integrated with Rational Rose,
winner of Computerworld's award for best new
object technology development product of 1995.


Includes a production-quality C/C++ compiler and GUI debugger

The Rational Apex C/C++ compiler is an optimizing compiler that supports the forthcoming ANSI C++ standard, including templates and exceptions, ANSI C, and K&R C. The Rational Apex compiler efficiently generates high-quality executable object code straight from your C or C++ source code. It is intended for the delivery of reliable, high-performance applications on the platforms on which Rational Apex C/C++ is available. The Rational Apex compiler technology has been used in many of the world's most demanding large-scale software projects since 1985 and has an unmatched record for reliability and scalability.

Rational Apex C/C++ includes a graphical user interface (GUI) debugger, complete with "point and click" support for setting breakpoints and watchpoints, as well as multiple windows for monitoring stack and data values. The debugger allows C/C++-level access and low-level access to assembly code and even to machine registers and memory locations, where appropriate.

Rational Apex C/C++ also includes a tracing tool that gives you detailed reports about execution-time events and enables performance profiling that identifies "hot spots" in your application that could benefit from performance tuning.

Slashes edit-compile-debug turnaround time

Rational Apex C/C++ exploits its persistent intermediate representation to give you fast-path recompilation, which gives you the full safety of makefiles while drastically reducing the amount of recompilation. With fast-path recompilation, you can modify comments, add #defines, and modify macros, and only the files affected by the changes will be recompiled. This capability dramatically reduces compilation cycles and improves turnaround time.

Reduces C/C++ coding errors

Rational Apex C/C++ also uses its persistent intermediate representation to provide automatic C/C++ code-rule checking. You can customize code-rule checking to detect and report violations of your C and C++ coding standards. For example, you can require each class to have a constructor, you can forbid or allow multiple inheritance, and you can require virtual destructors for all classes used as base classes. Code-rule checking results in fewer errors and more reliable code. It allows you to focus code reviews and walkthroughs on higher-level issues and frees you from using valuable staff time to check for coding errors.

Simplifies cross-platform development

C/C++ products from workstation vendors are proprietary implementations that tend to lock you into a given workstation or operating system. Platform-to-platform differences between C/C++ language dialects, compilers, debuggers, and other tools complicate multiplatform or multitarget development. These differences also reduce your ability to move to another platform as hardware and operating system price/performance ratios change. Rational Apex C/C++ offers the same language dialect, the same tools, and the same "look and feel" regardless of platform. Your development team can easily work on multiple platforms or change platforms, while keeping a standard toolset and a standard software-development process and saving significantly on training costs. All of Rational's complementary tools--Rational Rose/C++, SoDA, and TestMate--are also identical on all platforms, so your entire lifecycle solution can be standardized to simplify further multiplatform development.

Provides a seamless multitarget environment for embedded-systems development

In addition to supporting the development of workstation-based applications, Rational Apex C/C++ is ideal for the development of complex embedded systems in C or C++. Rational Apex C/C++ is integrated with Rational's Spire(TM) C/C++ family of C and C++ cross-compilers, which are available for most popular host platforms. Combining Rational Apex C/C++ with Spire C/C++ gives you integrated architectural enforcement, CMVC, and editing and browsing for embedded-systems development, plus the ability to test your application extensively on the host platform. A single Rational Apex C/C++ license allows access to several separately licensed Spire C/C++ cross-compilers for different targets.




The Spire family of cross-compilers shares the same persistent intermediate representation generated by Rational Apex.


Brings you field-proven reliability

Rational Apex C/C++ is the latest product in Rational's family of integrated development environments, the first member of which was shipped in 1985. Rational Apex's concept of tight tool integration based on a persistent intermediate representation has been proven on some of the most complex and demanding software projects in the world. Rational Apex scales well from small projects with one to five developers to those with millions of lines of code and hundreds of developers.

Rational designed Rational Apex C/C++ for ease of use and quick user start-up. Rational Apex C/C++ is an OSF/Motif application and conforms to the Motif style guide. FrameViewer, bundled with Rational Apex C/C++, provides online help. All C and C++ objects are stored as UNIX files or directories, so your UNIX knowledge and UNIX tools apply to Rational Apex C/C++ and its information.

Recommended configuration

Rational Apex C/C++ is available on workstations in the Sun SPARC/SunOS, Sun SPARC/ Solaris, HP9000 Series 700/800, IBM RS/6000, and Digital Alpha AXP families, with 32 Mb of RAM. Please check with your Rational representative for the latest information on supported platforms.


D-137; last updated 10/2/95